"""
配置管理模块
"""
import os
import sys
from pathlib import Path

__version__ = '0.1.0'

class Settings:
    """全局配置类"""
    
    def __init__(self):
        self.app_name = "Pack"
        self.app_version = __version__
        
        # 项目根目录
        self.root_dir = Path(__file__).parent.parent.parent.parent
        
        # 日志配置
        self.log_file = self.root_dir / "output.log"
        self.log_level = "INFO"
        
        # 临时目录配置
        self.temp_dir = self.root_dir / "temp_builds"
        
        # 打包配置
        self.default_save_dir = self._get_desktop_path()
        
        # 验证配置
        self._validate()
    
    def _get_desktop_path(self):
        """获取桌面路径,兼容不同系统"""
        desktop = Path.home() / "Desktop"
        if not desktop.exists():
            # Windows中文系统可能是"桌面"
            desktop_cn = Path.home() / "桌面"
            if desktop_cn.exists():
                return desktop_cn
            # 如果都不存在,返回用户目录
            return Path.home()
        return desktop
    
    def _validate(self):
        """验证配置有效性"""
        # 确保根目录存在
        if not self.root_dir.exists():
            raise ValueError(f"项目根目录不存在: {self.root_dir}")
        
        # 确保可以创建日志文件
        try:
            self.log_file.parent.mkdir(parents=True, exist_ok=True)
        except Exception as e:
            print(f"警告: 无法创建日志目录: {e}", file=sys.stderr)

settings = Settings()
